package com.ruoyi.project.manage.item.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;
import com.ruoyi.project.manage.file.domain.ProjectFile;
import com.ruoyi.project.manage.project.domain.Project;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 项目事项对象 eb_project_item
 * 
 * @author fangkun
 * @date 2022-04-02
 */
public class ProjectItem extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long projectItemId;

    /** 项目ID */
    @Excel(name = "项目ID")
    private Long projectId;

    /** 项目事项ID */
    @Excel(name = "项目事项ID")
    private Long itemId;

    /** 项目事项状态 */
    @Excel(name = "项目事项状态")
    private Integer projectItemStatus;

    /** 截至时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "截至时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deadline;

    /** 是否办理（0是 1否） */
    @Excel(name = "是否办理", readConverterExp = "0=是,1=否")
    private Integer isClose;

    /** 状态（0正常 1暂停） */
    @Excel(name = "状态", readConverterExp = "0=正常,1=暂停")
    private String status;

    private String itemIds;

    // 关联对象
    private StageItem stageItem;

    private Project project;

    private List<ProjectFile> fileList;

    public List<ProjectFile> getFileList() {
        return fileList;
    }

    public Integer getIsClose() {
        return isClose;
    }

    public void setIsClose(Integer isClose) {
        this.isClose = isClose;
    }

    public void setFileList(List<ProjectFile> fileList) {
        this.fileList = fileList;
    }

    public StageItem getStageItem() {
        return stageItem;
    }

    public void setStageItem(StageItem stageItem) {
        this.stageItem = stageItem;
    }

    public Project getProject() {
        return project;
    }

    public void setProject(Project project) {
        this.project = project;
    }

    public String getItemIds() {
        return itemIds;
    }

    public void setItemIds(String itemIds) {
        this.itemIds = itemIds;
    }

    public void setProjectItemId(Long projectItemId)
    {
        this.projectItemId = projectItemId;
    }

    public Long getProjectItemId()
    {
        return projectItemId;
    }
    public void setProjectId(Long projectId)
    {
        this.projectId = projectId;
    }

    public Long getProjectId()
    {
        return projectId;
    }
    public void setItemId(Long itemId)
    {
        this.itemId = itemId;
    }

    public Long getItemId()
    {
        return itemId;
    }
    public void setProjectItemStatus(Integer projectItemStatus)
    {
        this.projectItemStatus = projectItemStatus;
    }

    public Integer getProjectItemStatus()
    {
        return projectItemStatus;
    }
    public void setDeadline(Date deadline)
    {
        this.deadline = deadline;
    }

    public Date getDeadline()
    {
        return deadline;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("projectItemId", getProjectItemId())
            .append("projectId", getProjectId())
            .append("itemId", getItemId())
            .append("projectItemStatus", getProjectItemStatus())
            .append("deadline", getDeadline())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
